package map;

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * @param
 * @author oyz
 * @version 1.0.4
 * @description:
 * @date 2022/9/25 15:51
 */
public class Map_ {

    /**
     * 1.k-v最后是 HashMap$node node  = newNode(hash, key, value, null)
     * 2.创建一个EntrySer集合,存放的类型Entry<k,v>,即: transient Set<Map.Entry<K,V>> entrySet
     * 3.entrySet中定义的类型是Map.entry,实际上存放的仍然还是Map.node(内部类)
     * 4.HashMap.node实现了map.node, 如HashMap里面的内部类 static class Node<K,V> implements Map.Entry<K,V>,这里Entry是Map的一个内部接口，接口可以申明变量但是不可以new
     *
     */
    public static void main(String[] args) {
        Map map = new HashMap(16);
        map.put("oyz","好好学习");
        Set set = map.entrySet();
        for(Object object : set) {
            Map.Entry entry = (Map.Entry)object;
            System.out.println(entry.getKey() + "=" + entry.getValue());
        }
        System.out.println(map);
        Collection values = map.values();
        System.out.println(set.getClass());
        System.out.println(values.getClass());
    }
}
